package com.ruoyi.common.im.service.impl;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.im.entity.YytImJoinup;
import com.ruoyi.common.im.entity.YytImMessage;
import com.ruoyi.common.im.dao.YytImMessageMapper;
import com.ruoyi.common.im.service.YytImMessageService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;

/**
* <p>
    * 即时通讯-消息 服务实现类
    * </p>
*
* @author MrPing
* @since 2022-08-23
*/
@Service
public class YytImMessageServiceImpl extends ServiceImpl<YytImMessageMapper, YytImMessage> implements YytImMessageService {

    @Autowired
    private YytImMessageMapper yytImMessageMapper;

    @Resource
    private RabbitTemplate rabbitTemplate;

    @Override
    public void addMessage(String message, int i) {
        YytImMessage yytImMessage = JSON.parseObject(message, YytImMessage.class);
        yytImMessage.setStatus(i);
        if (i == 1){
            yytImMessage.setReadingTime(String.valueOf(new Date().getTime()));
        }
        yytImMessageMapper.insert(yytImMessage);
    }

    @Override
    public IPage<YytImMessage> getMessageList(Page<YytImMessage> page, String fromId, String toId, Integer type) {
        // 用户向客服咨询
        if(type == 0 || type == 1){
            String message = fromId + "|" + toId;
            rabbitTemplate.convertAndSend("yunya.message.direct.exchange","message", message);
            return yytImMessageMapper.getPageList(page, fromId, toId, type);
        }else {
            return yytImMessageMapper.getServiceShow(page, fromId , toId);
        }
    }
}
